home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 12 / BBS in a box XII-2.iso / Files II / Prog / D-G / Extension Shell 1.3.sit / Extension Shell 1.3 ƒ / Extension Shell 1.3 (Source) / InstallCode.c < prev    next >
MacBinary  |  1994-04-06  |  13.1 KB  |  [TEXT/R*ch]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: InstallCode.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Apr 6 13:57:07 1994, modified Wed Apr 6 13:57:07 1994, creator BBEdit, type ASCII, 12328 bytes "InstallCode.c" , at 0x30a8 828 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[R*ch]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0d 49 6e 73 74 61 6c | 6c 43 6f 64 65 2e 63 00 |..Instal|lCode.c.|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 52 2a 63 | 68 01 00 00 00 00 00 00 |.TEXTR*c|h.......|
|00000050| 00 00 00 00 00 30 28 00 | 00 03 3c a9 c8 a8 73 a9 |.....0(.|..<...s.|
|00000060| c8 a8 73 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..s.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 e4 61 00 00 |........|.....a..|
|00000080| 2f 2a 09 4e 41 4d 45 3a | 0d 09 09 49 6e 73 74 61 |/*.NAME:|...Insta|
|00000090| 6c 6c 43 6f 64 65 2e 63 | 0d 0d 09 57 52 49 54 54 |llCode.c|...WRITT|
|000000a0| 45 4e 20 42 59 3a 0d 09 | 09 44 61 69 72 20 47 72 |EN BY:..|.Dair Gr|
|000000b0| 61 6e 74 0d 09 09 09 09 | 0d 09 44 45 53 43 52 49 |ant.....|..DESCRI|
|000000c0| 50 54 49 4f 4e 3a 0d 09 | 09 52 6f 75 74 69 6e 65 |PTION:..|.Routine|
|000000d0| 73 20 66 6f 72 20 69 6e | 73 74 61 6c 6c 69 6e 67 |s for in|stalling|
|000000e0| 20 74 68 65 20 76 61 72 | 69 6f 75 73 20 63 6f 64 | the var|ious cod|
|000000f0| 65 20 72 65 73 6f 75 72 | 63 65 73 20 45 78 74 65 |e resour|ces Exte|
|00000100| 6e 73 69 6f 6e 20 53 68 | 65 6c 6c 20 73 75 70 70 |nsion Sh|ell supp|
|00000110| 6f 72 74 73 2e 0d 0d 09 | 5f 5f 5f 5f 5f 5f 5f 5f |orts....|________|
|00000120| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000130| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000140| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000150| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000160| 5f 5f 5f 0d 0d 09 56 45 | 52 53 49 4f 4e 20 48 49 |___...VE|RSION HI|
|00000170| 53 54 4f 52 59 3a 0d 09 | 09 28 4a 61 6e 20 31 39 |STORY:..|.(Jan 19|
|00000180| 39 34 2c 20 64 67 29 0d | 09 09 09 a5 09 41 64 64 |94, dg).|.....Add|
|00000190| 65 64 20 6c 6f 77 2d 6d | 65 6d 6f 72 79 20 66 69 |ed low-m|emory fi|
|000001a0| 6c 74 65 72 20 73 75 70 | 70 6f 72 74 2e 0d 0d 09 |lter sup|port....|
|000001b0| 09 28 4a 61 6e 20 31 39 | 39 34 2c 20 64 67 29 0d |.(Jan 19|94, dg).|
|000001c0| 09 09 09 a5 09 46 69 72 | 73 74 20 70 75 62 6c 69 |.....Fir|st publi|
|000001d0| 63 6c 79 20 64 69 73 74 | 72 69 62 75 74 65 64 20 |cly dist|ributed |
|000001e0| 76 65 72 73 69 6f 6e 2e | 0d 0d 09 09 28 4d 61 72 |version.|....(Mar|
|000001f0| 20 31 39 39 34 2c 20 64 | 67 29 0d 09 09 09 a5 09 | 1994, d|g)......|
|00000200| 41 64 64 65 64 20 73 75 | 70 70 6f 72 74 20 66 6f |Added su|pport fo|
|00000210| 72 20 63 6f 64 65 20 62 | 6c 6f 63 6b 73 2e 0d 09 |r code b|locks...|
|00000220| 09 09 0d 09 09 09 0d 09 | 5f 5f 5f 5f 5f 5f 5f 5f |........|________|
|00000230| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000240| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000250| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000260| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000270| 5f 5f 5f 0d 2a 2f 0d 2f | 2f 3d 3d 3d 3d 3d 3d 3d |___.*/./|/=======|
|00000280| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000290| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002c0| 3d 3d 3d 3d 3d 3d 0d 2f | 2f 09 09 49 6e 63 6c 75 |======./|/..Inclu|
|000002d0| 64 65 20 66 69 6c 65 73 | 09 09 09 09 09 09 09 09 |de files|........|
|000002e0| 09 09 09 09 09 09 09 09 | 09 20 0d 2f 2f 2d 2d 2d |........|. .//---|
|000002f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 23 69 6e 63 6c |--------|--.#incl|
|00000340| 75 64 65 20 3c 47 65 73 | 74 61 6c 74 45 71 75 2e |ude <Ges|taltEqu.|
|00000350| 68 3e 0d 23 69 6e 63 6c | 75 64 65 20 3c 53 68 75 |h>.#incl|ude <Shu|
|00000360| 74 64 6f 77 6e 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |tdown.h>|.#includ|
|00000370| 65 20 22 50 61 72 61 6d | 42 6c 6f 63 6b 2e 68 22 |e "Param|Block.h"|
|00000380| 0d 23 69 6e 63 6c 75 64 | 65 20 22 49 6e 73 74 61 |.#includ|e "Insta|
|00000390| 6c 6c 43 6f 64 65 2e 68 | 22 0d 23 69 6e 63 6c 75 |llCode.h|".#inclu|
|000003a0| 64 65 20 22 45 78 74 65 | 6e 73 69 6f 6e 53 68 65 |de "Exte|nsionShe|
|000003b0| 6c 6c 2e 68 22 0d 23 69 | 6e 63 6c 75 64 65 20 22 |ll.h".#i|nclude "|
|000003c0| 41 64 64 72 73 54 61 62 | 6c 65 2e 68 22 0d 0d 0d |AddrsTab|le.h"...|
|000003d0| 0d 0d 0d 2f 2f 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |...//===|========|
|000003e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000003f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000420| 3d 3d 0d 2f 2f 09 09 50 | 72 69 76 61 74 65 20 66 |==.//..P|rivate f|
|00000430| 75 6e 63 74 69 6f 6e 20 | 70 72 6f 74 6f 74 79 70 |unction |prototyp|
|00000440| 65 73 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |es......|........|
|00000450| 09 09 09 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |... .//-|--------|
|00000460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004a0| 2d 2d 2d 2d 0d 4f 53 45 | 72 72 09 49 6e 73 74 61 |----.OSE|rr.Insta|
|000004b0| 6c 6c 54 72 61 70 50 61 | 74 63 68 28 73 68 6f 72 |llTrapPa|tch(shor|
|000004c0| 74 20 69 2c 20 50 74 72 | 20 74 68 65 43 6f 64 65 |t i, Ptr| theCode|
|000004d0| 29 3b 0d 4f 53 45 72 72 | 09 49 6e 73 74 61 6c 6c |);.OSErr|.Install|
|000004e0| 47 65 73 74 61 6c 74 53 | 65 6c 65 63 74 6f 72 28 |GestaltS|elector(|
|000004f0| 73 68 6f 72 74 20 69 2c | 20 50 74 72 20 74 68 65 |short i,| Ptr the|
|00000500| 43 6f 64 65 29 3b 0d 4f | 53 45 72 72 09 49 6e 73 |Code);.O|SErr.Ins|
|00000510| 74 61 6c 6c 53 68 75 74 | 64 6f 77 6e 54 61 73 6b |tallShut|downTask|
|00000520| 28 73 68 6f 72 74 20 69 | 2c 20 50 74 72 20 74 68 |(short i|, Ptr th|
|00000530| 65 43 6f 64 65 29 3b 0d | 4f 53 45 72 72 09 49 6e |eCode);.|OSErr.In|
|00000540| 73 74 61 6c 6c 56 42 4c | 54 61 73 6b 28 73 68 6f |stallVBL|Task(sho|
|00000550| 72 74 20 69 2c 20 50 74 | 72 20 74 68 65 43 6f 64 |rt i, Pt|r theCod|
|00000560| 65 29 3b 0d 4f 53 45 72 | 72 09 49 6e 73 74 61 6c |e);.OSEr|r.Instal|
|00000570| 6c 4c 6f 77 4d 65 6d 46 | 69 6c 74 65 72 28 73 68 |lLowMemF|ilter(sh|
|00000580| 6f 72 74 20 69 2c 20 50 | 74 72 20 74 68 65 43 6f |ort i, P|tr theCo|
|00000590| 64 65 29 3b 0d 4f 53 45 | 72 72 09 49 6e 73 74 61 |de);.OSE|rr.Insta|
|000005a0| 6c 6c 43 6f 64 65 42 6c | 6f 63 6b 28 73 68 6f 72 |llCodeBl|ock(shor|
|000005b0| 74 20 69 2c 20 50 74 72 | 20 74 68 65 43 6f 64 65 |t i, Ptr| theCode|
|000005c0| 29 3b 0d 4f 53 45 72 72 | 09 49 6e 73 74 61 6c 6c |);.OSErr|.Install|
|000005d0| 54 69 6d 65 4d 61 6e 61 | 67 65 72 54 61 73 6b 28 |TimeMana|gerTask(|
|000005e0| 73 68 6f 72 74 20 69 2c | 20 50 74 72 20 74 68 65 |short i,| Ptr the|
|000005f0| 43 6f 64 65 29 3b 0d 0d | 0d 0d 0d 0d 2f 2f 3d 3d |Code);..|....//==|
|00000600| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000610| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000620| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000630| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000640| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 2f 2f 09 09 |========|===.//..|
|00000650| 47 6c 6f 62 61 6c 20 76 | 61 72 69 61 62 6c 65 73 |Global v|ariables|
|00000660| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00000670| 20 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | .//----|--------|
|00000680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006c0| 2d 0d 65 78 74 65 72 6e | 20 45 53 50 61 72 61 6d |-.extern| ESParam|
|000006d0| 42 6c 6f 63 6b 09 09 67 | 54 68 65 50 61 72 61 6d |Block..g|TheParam|
|000006e0| 42 6c 6f 63 6b 3b 0d 65 | 78 74 65 72 6e 20 41 64 |Block;.e|xtern Ad|
|000006f0| 64 72 65 73 73 54 61 62 | 6c 65 09 09 2a 67 54 68 |dressTab|le..*gTh|
|00000700| 65 41 64 64 72 65 73 73 | 54 61 62 6c 65 3b 0d 0d |eAddress|Table;..|
|00000710| 0d 0d 0d 0d 0d 0d 0d 0d | 0d 2f 2f 3d 3d 3d 3d 3d |........|.//=====|
|00000720| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000730| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000740| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000750| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000760| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 2f 2f 09 09 49 6e 73 |========|.//..Ins|
|00000770| 74 61 6c 6c 43 6f 64 65 | 20 3a 20 49 6e 73 74 61 |tallCode| : Insta|
|00000780| 6c 6c 20 61 20 63 6f 64 | 65 20 72 65 73 6f 75 72 |ll a cod|e resour|
|00000790| 63 65 20 64 65 70 65 6e | 64 69 6e 67 20 6f 6e 20 |ce depen|ding on |
|000007a0| 69 74 73 20 74 79 70 65 | 2e 09 09 09 09 09 09 09 |its type|........|
|000007b0| 09 09 09 09 09 09 09 09 | 09 20 0d 2f 2f 2d 2d 2d |........|. .//---|
|000007c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 09 09 4e |--------|--.//..N|
|00000810| 6f 74 65 20 3a 09 57 65 | 20 67 65 74 20 74 68 65 |ote :.We| get the|
|00000820| 20 69 6e 64 65 78 20 6f | 66 20 73 6f 6d 65 74 68 | index o|f someth|
|00000830| 69 6e 67 20 69 6e 20 67 | 54 68 65 50 61 72 61 6d |ing in g|TheParam|
|00000840| 42 6c 6f 63 6b 2e 54 68 | 65 43 6f 64 65 52 65 73 |Block.Th|eCodeRes|
|00000850| 6f 75 72 63 65 73 0d 2f | 2f 09 09 09 09 61 6e 64 |ources./|/....and|
|00000860| 20 63 61 73 65 20 6f 75 | 74 20 6f 6e 20 69 74 73 | case ou|t on its|
|00000870| 20 74 79 70 65 20 74 6f | 20 64 6f 20 74 68 65 20 | type to| do the |
|00000880| 69 6e 73 74 61 6c 6c 61 | 74 69 6f 6e 2e 20 42 6f |installa|tion. Bo|
|00000890| 74 68 20 6f 75 72 73 65 | 6c 76 65 73 0d 2f 2f 09 |th ourse|lves.//.|
|000008a0| 09 09 09 61 6e 64 20 74 | 68 65 20 61 63 74 75 61 |...and t|he actua|
|000008b0| 6c 20 69 6e 73 74 61 6c | 6c 20 72 6f 75 74 69 6e |l instal|l routin|
|000008c0| 65 73 20 61 72 65 20 6f | 6e 6c 79 20 65 78 70 65 |es are o|nly expe|
|000008d0| 63 74 65 64 20 74 6f 20 | 72 65 74 75 72 6e 20 61 |cted to |return a|
|000008e0| 6e 79 0d 2f 2f 09 09 09 | 09 65 72 72 6f 72 20 63 |ny.//...|.error c|
|000008f0| 6f 64 65 20 74 68 61 74 | 20 61 72 69 73 65 73 2e |ode that| arises.|
|00000900| 20 49 66 20 61 6e 20 65 | 72 72 6f 72 20 64 6f 65 | If an e|rror doe|
|00000910| 73 20 6f 63 63 75 72 2c | 20 6f 75 72 20 63 61 6c |s occur,| our cal|
|00000920| 6c 65 72 0d 2f 2f 09 09 | 09 09 6c 6f 6f 6b 73 20 |ler.//..|..looks |
|00000930| 61 66 74 65 72 20 66 69 | 6c 6c 69 6e 67 20 69 6e |after fi|lling in|
|00000940| 20 74 68 65 20 6f 74 68 | 65 72 20 65 72 72 6f 72 | the oth|er error|
|00000950| 20 64 65 74 61 69 6c 73 | 20 69 6e 20 67 54 68 65 | details| in gThe|
|00000960| 50 61 72 61 6d 42 6c 6f | 63 6b 2e 0d 2f 2f 2d 2d |ParamBlo|ck..//--|
|00000970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 4f 53 45 72 |--------|---.OSEr|
|000009c0| 72 20 49 6e 73 74 61 6c | 6c 43 6f 64 65 28 73 68 |r Instal|lCode(sh|
|000009d0| 6f 72 74 20 69 29 0d 7b | 09 48 61 6e 64 6c 65 09 |ort i).{|.Handle.|
|000009e0| 09 74 68 65 48 6e 64 3b | 0d 09 4f 53 45 72 72 09 |.theHnd;|..OSErr.|
|000009f0| 09 74 68 65 45 72 72 3b | 0d 09 50 74 72 09 09 09 |.theErr;|..Ptr...|
|00000a00| 74 68 65 43 6f 64 65 3b | 0d 09 69 6e 74 09 09 09 |theCode;|..int...|
|00000a10| 74 68 65 54 79 70 65 3b | 0d 09 0d 09 0d 0d 0d 09 |theType;|........|
|00000a20| 2f 2f 20 47 65 74 20 74 | 68 65 20 63 6f 64 65 20 |// Get t|he code |
|00000a30| 72 65 73 6f 75 72 63 65 | 20 69 6e 20 71 75 65 73 |resource| in ques|
|00000a40| 74 69 6f 6e 2c 20 61 6e | 64 20 61 62 6f 72 74 20 |tion, an|d abort |
|00000a50| 69 66 20 69 74 20 77 61 | 73 6e 27 74 20 74 68 65 |if it wa|sn't the|
|00000a60| 72 65 2e 0d 09 74 68 65 | 48 6e 64 20 3d 20 47 65 |re...the|Hnd = Ge|
|00000a70| 74 52 65 73 6f 75 72 63 | 65 28 67 54 68 65 50 61 |tResourc|e(gThePa|
|00000a80| 72 61 6d 42 6c 6f 63 6b | 2e 74 68 65 43 6f 64 65 |ramBlock|.theCode|
|00000a90| 52 65 73 6f 75 72 63 65 | 73 5b 69 5d 2e 72 65 73 |Resource|s[i].res|
|00000aa0| 54 79 70 65 2c 0d 09 20 | 20 20 20 20 20 20 20 20 |Type,.. | |
|00000ab0| 20 20 20 20 20 20 20 20 | 20 20 20 20 67 54 68 65 | | gThe|
|00000ac0| 50 61 72 61 6d 42 6c 6f | 63 6b 2e 74 68 65 43 6f |ParamBlo|ck.theCo|
|00000ad0| 64 65 52 65 73 6f 75 72 | 63 65 73 5b 69 5d 2e 72 |deResour|ces[i].r|
|00000ae0| 65 73 49 44 29 3b 0d 09 | 69 66 20 28 74 68 65 48 |esID);..|if (theH|
|00000af0| 6e 64 20 3d 3d 20 6e 69 | 6c 29 0d 09 09 72 65 74 |nd == ni|l)...ret|
|00000b00| 75 72 6e 28 72 65 73 4e | 6f 74 46 6f 75 6e 64 29 |urn(resN|otFound)|
|00000b10| 3b 0d 0d 0d 09 0d 09 2f | 2f 20 55 6e 6c 6f 63 6b |;....../|/ Unlock|
|00000b20| 2c 20 6d 6f 76 65 20 68 | 69 67 68 2c 20 61 6e 64 |, move h|igh, and|
|00000b30| 20 6c 6f 63 6b 20 74 68 | 65 20 72 65 73 6f 75 72 | lock th|e resour|
|00000b40| 63 65 2e 20 54 68 65 6e | 20 64 65 74 61 63 68 20 |ce. Then| detach |
|00000b50| 69 74 20 73 6f 0d 09 2f | 2f 20 69 74 20 73 74 61 |it so../|/ it sta|
|00000b60| 79 73 20 61 72 6f 75 6e | 64 20 61 66 74 65 72 20 |ys aroun|d after |
|00000b70| 45 78 74 65 6e 73 69 6f | 6e 20 53 68 65 6c 6c 20 |Extensio|n Shell |
|00000b80| 69 73 20 67 6f 6e 65 2e | 0d 09 48 55 6e 6c 6f 63 |is gone.|..HUnloc|
|00000b90| 6b 28 74 68 65 48 6e 64 | 29 3b 0d 09 48 4c 6f 63 |k(theHnd|);..HLoc|
|00000ba0| 6b 48 69 28 74 68 65 48 | 6e 64 29 3b 0d 09 44 65 |kHi(theH|nd);..De|
|00000bb0| 74 61 63 68 52 65 73 6f | 75 72 63 65 28 74 68 65 |tachReso|urce(the|
|00000bc0| 48 6e 64 29 3b 0d 0d 0d | 0d 09 2f 2f 20 47 65 74 |Hnd);...|..// Get|
|00000bd0| 20 61 20 63 6c 65 61 6e | 20 61 64 64 72 65 73 73 | a clean| address|
|00000be0| 20 66 72 6f 6d 20 74 68 | 65 20 68 61 6e 64 6c 65 | from th|e handle|
|00000bf0| 0d 09 74 68 65 43 6f 64 | 65 20 3d 20 28 50 74 72 |..theCod|e = (Ptr|
|00000c00| 29 20 53 74 72 69 70 41 | 64 64 72 65 73 73 28 2a |) StripA|ddress(*|
|00000c10| 74 68 65 48 6e 64 29 3b | 0d 0d 0d 0d 09 2f 2f 20 |theHnd);|.....// |
|00000c20| 4e 6f 77 20 63 61 73 65 | 20 6f 75 74 20 6f 6e 20 |Now case| out on |
|00000c30| 74 68 65 20 74 79 70 65 | 20 6f 66 20 74 68 65 20 |the type| of the |
|00000c40| 63 6f 64 65 2c 20 61 6e | 64 20 63 61 6c 6c 20 74 |code, an|d call t|
|00000c50| 68 65 20 69 6e 73 74 61 | 6c 6c 20 72 6f 75 74 69 |he insta|ll routi|
|00000c60| 6e 65 0d 09 73 77 69 74 | 63 68 28 67 54 68 65 50 |ne..swit|ch(gTheP|
|00000c70| 61 72 61 6d 42 6c 6f 63 | 6b 2e 74 68 65 43 6f 64 |aramBloc|k.theCod|
|00000c80| 65 52 65 73 6f 75 72 63 | 65 73 5b 69 5d 2e 63 6f |eResourc|es[i].co|
|00000c90| 64 65 54 79 70 65 29 20 | 7b 0d 09 09 63 61 73 65 |deType) |{...case|
|00000ca0| 20 6b 54 72 61 70 50 61 | 74 63 68 54 79 70 65 3a | kTrapPa|tchType:|
|00000cb0| 0d 09 09 20 20 20 20 20 | 74 68 65 45 72 72 20 3d |... |theErr =|
|00000cc0| 20 49 6e 73 74 61 6c 6c | 54 72 61 70 50 61 74 63 | Install|TrapPatc|
|00000cd0| 68 28 69 2c 20 74 68 65 | 43 6f 64 65 29 3b 0d 09 |h(i, the|Code);..|
|00000ce0| 09 20 20 20 20 20 62 72 | 65 61 6b 3b 0d 09 09 20 |. br|eak;... |
|00000cf0| 20 20 20 20 0d 09 09 63 | 61 73 65 20 6b 47 65 73 | ...c|ase kGes|
|00000d00| 74 61 6c 74 53 65 6c 65 | 63 74 6f 72 54 79 70 65 |taltSele|ctorType|
|00000d10| 3a 0d 09 09 20 20 20 20 | 20 74 68 65 45 72 72 20 |:... | theErr |
|00000d20| 3d 20 49 6e 73 74 61 6c | 6c 47 65 73 74 61 6c 74 |= Instal|lGestalt|
|00000d30| 53 65 6c 65 63 74 6f 72 | 28 69 2c 20 74 68 65 43 |Selector|(i, theC|
|00000d40| 6f 64 65 29 3b 0d 09 09 | 20 20 20 20 20 62 72 65 |ode);...| bre|
|00000d50| 61 6b 3b 0d 09 09 20 20 | 20 20 20 0d 09 09 63 61 |ak;... | ...ca|
|00000d60| 73 65 20 6b 53 68 75 74 | 64 6f 77 6e 54 61 73 6b |se kShut|downTask|
|00000d70| 54 79 70 65 3a 0d 09 09 | 20 20 20 20 20 74 68 65 |Type:...| the|
|00000d80| 45 72 72 20 3d 20 49 6e | 73 74 61 6c 6c 53 68 75 |Err = In|stallShu|
|00000d90| 74 64 6f 77 6e 54 61 73 | 6b 28 69 2c 20 74 68 65 |tdownTas|k(i, the|
|00000da0| 43 6f 64 65 29 3b 0d 09 | 09 20 20 20 20 20 62 72 |Code);..|. br|
|00000db0| 65 61 6b 3b 0d 09 09 20 | 20 20 20 20 0d 09 09 63 |eak;... | ...c|
|00000dc0| 61 73 65 20 6b 56 42 4c | 54 61 73 6b 54 79 70 65 |ase kVBL|TaskType|
|00000dd0| 3a 0d 09 09 20 20 20 20 | 20 74 68 65 45 72 72 20 |:... | theErr |
|00000de0| 3d 20 49 6e 73 74 61 6c | 6c 56 42 4c 54 61 73 6b |= Instal|lVBLTask|
|00000df0| 28 69 2c 20 74 68 65 43 | 6f 64 65 29 3b 0d 09 09 |(i, theC|ode);...|
|00000e00| 20 20 20 20 20 62 72 65 | 61 6b 3b 0d 09 09 0d 09 | bre|ak;.....|
|00000e10| 09 63 61 73 65 20 6b 4c | 6f 77 4d 65 6d 46 69 6c |.case kL|owMemFil|
|00000e20| 74 65 72 54 79 70 65 3a | 0d 09 09 20 20 20 20 20 |terType:|... |
|00000e30| 74 68 65 45 72 72 20 3d | 20 49 6e 73 74 61 6c 6c |theErr =| Install|
|00000e40| 4c 6f 77 4d 65 6d 46 69 | 6c 74 65 72 28 69 2c 20 |LowMemFi|lter(i, |
|00000e50| 74 68 65 43 6f 64 65 29 | 3b 0d 09 09 20 20 20 20 |theCode)|;... |
|00000e60| 20 62 72 65 61 6b 3b 0d | 09 09 0d 09 09 63 61 73 | break;.|.....cas|
|00000e70| 65 20 6b 43 6f 64 65 42 | 6c 6f 63 6b 54 79 70 65 |e kCodeB|lockType|
|00000e80| 3a 0d 09 09 20 20 20 20 | 20 74 68 65 45 72 72 20 |:... | theErr |
|00000e90| 3d 20 49 6e 73 74 61 6c | 6c 43 6f 64 65 42 6c 6f |= Instal|lCodeBlo|
|00000ea0| 63 6b 28 69 2c 20 74 68 | 65 43 6f 64 65 29 3b 0d |ck(i, th|eCode);.|
|00000eb0| 09 09 20 20 20 20 20 62 | 72 65 61 6b 3b 0d 09 09 |.. b|reak;...|
|00000ec0| 0d 09 09 63 61 73 65 20 | 6b 54 69 6d 65 4d 61 6e |...case |kTimeMan|
|00000ed0| 61 67 65 72 54 61 73 6b | 54 79 70 65 3a 0d 09 09 |agerTask|Type:...|
|00000ee0| 20 20 20 20 20 74 68 65 | 45 72 72 20 3d 20 49 6e | the|Err = In|
|00000ef0| 73 74 61 6c 6c 54 69 6d | 65 4d 61 6e 61 67 65 72 |stallTim|eManager|
|00000f00| 54 61 73 6b 28 69 2c 20 | 74 68 65 43 6f 64 65 29 |Task(i, |theCode)|
|00000f10| 3b 0d 09 09 20 20 20 20 | 20 62 72 65 61 6b 3b 0d |;... | break;.|
|00000f20| 09 09 0d 09 09 64 65 66 | 61 75 6c 74 3a 0d 09 09 |.....def|ault:...|
|00000f30| 20 20 20 20 20 74 68 65 | 45 72 72 20 3d 20 6e 6f | the|Err = no|
|00000f40| 45 72 72 3b 0d 09 7d 0d | 0d 09 0d 09 0d 09 72 65 |Err;..}.|......re|
|00000f50| 74 75 72 6e 28 74 68 65 | 45 72 72 29 3b 0d 7d 20 |turn(the|Err);.} |
|00000f60| 0d 0d 0d 0d 0d 0d 0d 0d | 0d 0d 0d 2f 2f 3d 3d 3d |........|...//===|
|00000f70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000f80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000f90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 2f 2f 09 09 49 |========|==.//..I|
|00000fc0| 6e 73 74 61 6c 6c 41 64 | 64 72 65 73 73 54 61 62 |nstallAd|dressTab|
|00000fd0| 6c 65 20 3a 20 49 6e 73 | 74 61 6c 6c 20 61 6e 20 |le : Ins|tall an |
|00000fe0| 61 64 64 72 65 73 73 20 | 74 61 62 6c 65 20 66 6f |address |table fo|
|00000ff0| 72 20 74 68 65 20 49 4e | 49 54 2e 0d 2f 2f 2d 2d |r the IN|IT..//--|
|00001000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 09 09 |--------|---.//..|
|00001050| 4e 6f 74 65 20 3a 09 57 | 65 20 69 6e 73 74 61 6c |Note :.W|e instal|
|00001060| 6c 20 74 68 65 20 47 65 | 73 74 61 6c 74 20 73 65 |l the Ge|stalt se|
|00001070| 6c 65 63 74 6f 72 2c 20 | 67 65 74 20 61 20 68 6f |lector, |get a ho|
|00001080| 6c 64 20 6f 66 20 74 68 | 65 20 61 64 64 72 65 73 |ld of th|e addres|
|00001090| 73 0d 2f 2f 09 09 09 09 | 74 61 62 6c 65 20 61 6e |s.//....|table an|
|000010a0| 64 20 6c 65 61 76 65 20 | 74 68 65 20 61 64 64 72 |d leave |the addr|
|000010b0| 65 73 73 20 6f 66 20 74 | 68 65 20 74 61 62 6c 65 |ess of t|he table|
|000010c0| 20 69 6e 20 74 68 65 20 | 67 6c 6f 62 61 6c 0d 2f | in the |global./|
|000010d0| 2f 09 09 09 09 67 54 68 | 65 41 64 64 72 65 73 73 |/....gTh|eAddress|
|000010e0| 54 61 62 6c 65 2e 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |Table../|/-------|
|000010f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001130| 2d 2d 2d 2d 2d 2d 0d 76 | 6f 69 64 20 49 6e 73 74 |------.v|oid Inst|
|00001140| 61 6c 6c 41 64 64 72 65 | 73 73 54 61 62 6c 65 28 |allAddre|ssTable(|
|00001150| 76 6f 69 64 29 0d 7b 09 | 48 61 6e 64 6c 65 09 09 |void).{.|Handle..|
|00001160| 09 74 68 65 48 6e 64 3b | 0d 09 4f 53 45 72 72 09 |.theHnd;|..OSErr.|
|00001170| 09 09 74 68 65 45 72 72 | 3b 0d 09 0d 0d 0d 0d 09 |..theErr|;.......|
|00001180| 2f 2f 20 4c 6f 61 64 20 | 74 68 65 20 41 64 64 72 |// Load |the Addr|
|00001190| 65 73 73 54 61 62 6c 65 | 20 47 65 73 74 61 6c 74 |essTable| Gestalt|
|000011a0| 20 73 65 6c 65 63 74 6f | 72 2c 20 61 6e 64 20 69 | selecto|r, and i|
|000011b0| 6e 73 74 61 6c 6c 20 69 | 74 20 77 69 74 68 20 4e |nstall i|t with N|
|000011c0| 65 77 47 65 73 74 61 6c | 74 2e 0d 09 2f 2f 20 49 |ewGestal|t...// I|
|000011d0| 66 20 77 65 20 63 61 6e | 27 74 20 67 65 74 20 69 |f we can|'t get i|
|000011e0| 74 2c 20 77 65 20 64 69 | 65 2e 0d 09 74 68 65 48 |t, we di|e...theH|
|000011f0| 6e 64 20 3d 20 47 65 74 | 52 65 73 6f 75 72 63 65 |nd = Get|Resource|
|00001200| 28 6b 41 64 64 72 73 54 | 61 62 6c 65 43 6f 64 65 |(kAddrsT|ableCode|
|00001210| 54 79 70 65 2c 20 6b 41 | 64 64 72 73 54 61 62 6c |Type, kA|ddrsTabl|
|00001220| 65 43 6f 64 65 49 44 29 | 3b 0d 09 69 66 20 28 74 |eCodeID)|;..if (t|
|00001230| 68 65 48 6e 64 20 3d 3d | 20 6e 69 6c 29 0d 09 09 |heHnd ==| nil)...|
|00001240| 44 65 62 75 67 53 74 72 | 28 22 5c 70 45 78 74 65 |DebugStr|("\pExte|
|00001250| 6e 73 69 6f 6e 20 53 68 | 65 6c 6c 20 2d 20 63 6f |nsion Sh|ell - co|
|00001260| 75 6c 64 6e 27 74 20 66 | 69 6e 64 20 41 64 64 72 |uldn't f|ind Addr|
|00001270| 65 73 73 54 61 62 6c 65 | 20 43 4f 44 45 20 72 65 |essTable| CODE re|
|00001280| 73 6f 75 72 63 65 22 29 | 3b 0d 09 0d 09 09 0d 09 |source")|;.......|
|00001290| 0d 09 2f 2f 20 57 65 20 | 68 61 76 65 20 69 74 2c |..// We |have it,|
|000012a0| 20 73 6f 20 70 72 65 70 | 61 72 65 20 74 68 65 20 | so prep|are the |
|000012b0| 63 6f 64 65 20 62 79 20 | 64 65 74 61 63 68 69 6e |code by |detachin|
|000012c0| 67 20 69 74 20 61 6e 64 | 20 6c 6f 63 6b 69 6e 67 |g it and| locking|
|000012d0| 20 69 74 20 68 69 67 68 | 0d 09 48 55 6e 6c 6f 63 | it high|..HUnloc|
|000012e0| 6b 28 74 68 65 48 6e 64 | 29 3b 0d 09 48 4c 6f 63 |k(theHnd|);..HLoc|
|000012f0| 6b 48 69 28 74 68 65 48 | 6e 64 29 3b 0d 09 44 65 |kHi(theH|nd);..De|
|00001300| 74 61 63 68 52 65 73 6f | 75 72 63 65 28 74 68 65 |tachReso|urce(the|
|00001310| 48 6e 64 29 3b 0d 09 0d | 09 0d 09 0d 09 2f 2f 20 |Hnd);...|.....// |
|00001320| 49 6e 73 74 61 6c 6c 20 | 69 74 20 61 73 20 61 20 |Install |it as a |
|00001330| 47 65 73 74 61 6c 74 20 | 73 65 6c 65 63 74 6f 72 |Gestalt |selector|
|00001340| 0d 09 74 68 65 45 72 72 | 20 3d 20 4e 65 77 47 65 |..theErr| = NewGe|
|00001350| 73 74 61 6c 74 28 67 54 | 68 65 50 61 72 61 6d 42 |stalt(gT|heParamB|
|00001360| 6c 6f 63 6b 2e 61 64 64 | 72 65 73 73 54 61 62 6c |lock.add|ressTabl|
|00001370| 65 53 65 6c 65 63 74 6f | 72 2c 20 28 50 72 6f 63 |eSelecto|r, (Proc|
|00001380| 50 74 72 29 20 2a 74 68 | 65 48 6e 64 29 3b 0d 09 |Ptr) *th|eHnd);..|
|00001390| 69 66 20 28 74 68 65 45 | 72 72 20 21 3d 20 6e 6f |if (theE|rr != no|
|000013a0| 45 72 72 29 0d 09 09 44 | 65 62 75 67 53 74 72 28 |Err)...D|ebugStr(|
|000013b0| 22 5c 70 45 78 74 65 6e | 73 69 6f 6e 20 53 68 65 |"\pExten|sion She|
|000013c0| 6c 6c 20 2d 20 63 6f 75 | 6c 64 6e 27 74 20 69 6e |ll - cou|ldn't in|
|000013d0| 73 74 61 6c 6c 20 41 64 | 64 72 65 73 73 54 61 62 |stall Ad|dressTab|
|000013e0| 6c 65 22 29 3b 0d 09 09 | 0d 0d 0d 09 2f 2f 20 43 |le");...|....// C|
|000013f0| 61 6c 6c 20 74 68 65 20 | 6e 65 77 20 72 6f 75 74 |all the |new rout|
|00001400| 69 6e 65 20 74 6f 20 67 | 65 74 20 74 68 65 20 61 |ine to g|et the a|
|00001410| 64 64 72 65 73 73 20 6f | 66 20 74 68 65 20 61 64 |ddress o|f the ad|
|00001420| 64 72 65 73 73 20 74 61 | 62 6c 65 0d 09 74 68 65 |dress ta|ble..the|
|00001430| 45 72 72 20 3d 20 47 65 | 73 74 61 6c 74 28 67 54 |Err = Ge|stalt(gT|
|00001440| 68 65 50 61 72 61 6d 42 | 6c 6f 63 6b 2e 61 64 64 |heParamB|lock.add|
|00001450| 72 65 73 73 54 61 62 6c | 65 53 65 6c 65 63 74 6f |ressTabl|eSelecto|
|00001460| 72 2c 20 26 67 54 68 65 | 41 64 64 72 65 73 73 54 |r, &gThe|AddressT|
|00001470| 61 62 6c 65 29 3b 0d 09 | 69 66 20 28 74 68 65 45 |able);..|if (theE|
|00001480| 72 72 20 21 3d 20 6e 6f | 45 72 72 29 0d 09 09 44 |rr != no|Err)...D|
|00001490| 65 62 75 67 53 74 72 28 | 22 5c 70 45 78 74 65 6e |ebugStr(|"\pExten|
|000014a0| 73 69 6f 6e 20 53 68 65 | 6c 6c 20 2d 20 63 6f 75 |sion She|ll - cou|
|000014b0| 6c 64 6e 27 74 20 63 61 | 6c 6c 20 41 64 64 72 65 |ldn't ca|ll Addre|
|000014c0| 73 73 54 61 62 6c 65 22 | 29 3b 0d 7d 0d 0d 0d 0d |ssTable"|);.}....|
|000014d0| 0d 0d 0d 0d 0d 0d 0d 2f | 2f 3d 3d 3d 3d 3d 3d 3d |......./|/=======|
|000014e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000014f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001500| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001510| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001520| 3d 3d 3d 3d 3d 3d 0d 2f | 2f 09 09 49 6e 73 74 61 |======./|/..Insta|
|00001530| 6c 6c 54 72 61 70 50 61 | 74 63 68 20 3a 20 49 6e |llTrapPa|tch : In|
|00001540| 73 74 61 6c 6c 20 61 20 | 74 72 61 70 20 70 61 74 |stall a |trap pat|
|00001550| 63 68 2e 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |ch......|........|
|00001560| 09 20 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |. .//---|--------|
|00001570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015b0| 2d 2d 0d 2f 2f 09 09 4e | 6f 74 65 20 3a 09 47 69 |--.//..N|ote :.Gi|
|000015c0| 76 65 6e 20 61 20 74 72 | 61 70 20 6e 75 6d 62 65 |ven a tr|ap numbe|
|000015d0| 72 20 61 6e 64 20 61 20 | 70 6f 69 6e 74 65 72 20 |r and a |pointer |
|000015e0| 74 6f 20 74 68 65 20 6e | 65 77 20 72 6f 75 74 69 |to the n|ew routi|
|000015f0| 6e 65 2c 20 77 65 20 73 | 61 76 65 0d 2f 2f 09 09 |ne, we s|ave.//..|
|00001600| 09 09 74 68 65 20 6f 72 | 69 67 69 6e 61 6c 20 65 |..the or|iginal e|
|00001610| 6e 74 72 79 20 69 6e 20 | 74 68 65 20 64 69 73 70 |ntry in |the disp|
|00001620| 61 74 63 68 20 74 61 62 | 6c 65 20 61 6e 64 20 69 |atch tab|le and i|
|00001630| 6e 73 65 72 74 20 6f 75 | 72 73 2e 0d 2f 2f 0d 2f |nsert ou|rs..//./|
|00001640| 2f 09 09 09 09 57 65 20 | 61 73 73 75 6d 65 20 74 |/....We |assume t|
|00001650| 68 61 74 20 74 68 65 20 | 74 72 61 70 20 2a 69 73 |hat the |trap *is|
|00001660| 2a 20 69 6d 70 6c 65 6d | 65 6e 74 65 64 2e 0d 2f |* implem|ented../|
|00001670| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00001680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 4f |--------|------.O|
|000016c0| 53 45 72 72 20 49 6e 73 | 74 61 6c 6c 54 72 61 70 |SErr Ins|tallTrap|
|000016d0| 50 61 74 63 68 28 73 68 | 6f 72 74 20 69 2c 20 50 |Patch(sh|ort i, P|
|000016e0| 74 72 20 74 68 65 43 6f | 64 65 29 0d 7b 09 4f 53 |tr theCo|de).{.OS|
|000016f0| 45 72 72 09 09 74 68 65 | 45 72 72 3b 0d 09 69 6e |Err..the|Err;..in|
|00001700| 74 09 09 09 74 72 61 70 | 4e 75 6d 3b 0d 09 54 72 |t...trap|Num;..Tr|
|00001710| 61 70 54 79 70 65 09 74 | 54 79 70 65 3b 0d 09 50 |apType.t|Type;..P|
|00001720| 72 6f 63 50 74 72 09 09 | 6f 6c 64 43 6f 64 65 41 |rocPtr..|oldCodeA|
|00001730| 64 64 72 65 73 73 3b 0d | 09 0d 09 0d 09 0d 09 0d |ddress;.|........|
|00001740| 20 09 2f 2f 20 43 6f 70 | 79 20 74 68 65 20 72 65 | .// Cop|y the re|
|00001750| 6c 65 76 65 6e 74 20 64 | 65 74 61 69 6c 73 20 69 |levent d|etails i|
|00001760| 6e 74 6f 20 6c 6f 63 61 | 6c 20 76 61 72 69 61 62 |nto loca|l variab|
|00001770| 6c 65 73 20 66 6f 72 20 | 73 70 65 65 64 0d 20 09 |les for |speed. .|
|00001780| 74 72 61 70 4e 75 6d 09 | 09 09 3d 20 67 54 68 65 |trapNum.|..= gThe|
|00001790| 50 61 72 61 6d 42 6c 6f | 63 6b 2e 74 68 65 43 6f |ParamBlo|ck.theCo|
|000017a0| 64 65 52 65 73 6f 75 72 | 63 65 73 5b 69 5d 2e 74 |deResour|ces[i].t|
|000017b0| 68 65 43 6f 64 65 54 68 | 69 6e 67 2e 74 68 65 54 |heCodeTh|ing.theT|
|000017c0| 72 61 70 50 61 74 63 68 | 2e 74 72 61 70 4e 75 6d |rapPatch|.trapNum|
|000017d0| 3b 0d 0d 20 0d 20 0d 20 | 09 2f 2f 20 47 65 74 20 |;.. . . |.// Get |
|000017e0| 74 68 65 20 74 79 70 65 | 20 6f 66 20 74 68 65 20 |the type| of the |
|000017f0| 74 72 61 70 0d 09 74 54 | 79 70 65 20 3d 20 47 65 |trap..tT|ype = Ge|
|00001800| 74 54 72 61 70 54 79 70 | 65 28 74 72 61 70 4e 75 |tTrapTyp|e(trapNu|
|00001810| 6d 29 3b 0d 09 0d 09 0d | 09 0d 09 2f 2f 20 52 65 |m);.....|...// Re|
|00001820| 70 6c 61 63 65 20 74 68 | 65 20 6f 6c 64 20 76 61 |place th|e old va|
|00001830| 6c 75 65 20 69 6e 20 74 | 68 65 20 64 69 73 70 61 |lue in t|he dispa|
|00001840| 74 63 68 20 74 61 62 6c | 65 20 77 69 74 68 20 74 |tch tabl|e with t|
|00001850| 68 65 20 6e 65 77 20 76 | 61 6c 75 65 2e 0d 09 6f |he new v|alue...o|
|00001860| 6c 64 43 6f 64 65 41 64 | 64 72 65 73 73 20 3d 20 |ldCodeAd|dress = |
|00001870| 28 50 72 6f 63 50 74 72 | 29 20 53 74 72 69 70 41 |(ProcPtr|) StripA|
|00001880| 64 64 72 65 73 73 28 28 | 50 74 72 29 20 4e 47 65 |ddress((|Ptr) NGe|
|00001890| 74 54 72 61 70 41 64 64 | 72 65 73 73 28 74 72 61 |tTrapAdd|ress(tra|
|000018a0| 70 4e 75 6d 2c 20 74 54 | 79 70 65 29 29 3b 0d 09 |pNum, tT|ype));..|
|000018b0| 4e 53 65 74 54 72 61 70 | 41 64 64 72 65 73 73 28 |NSetTrap|Address(|
|000018c0| 28 6c 6f 6e 67 29 20 74 | 68 65 43 6f 64 65 2c 20 |(long) t|heCode, |
|000018d0| 74 72 61 70 4e 75 6d 2c | 20 74 54 79 70 65 29 3b |trapNum,| tType);|
|000018e0| 0d 09 74 68 65 45 72 72 | 20 3d 20 6e 6f 45 72 72 |..theErr| = noErr|
|000018f0| 3b 0d 09 0d 09 0d 09 0d | 09 2f 2f 20 49 66 20 74 |;.......|.// If t|
|00001900| 68 65 72 65 20 77 61 73 | 6e 27 74 20 61 20 70 72 |here was|n't a pr|
|00001910| 6f 62 6c 65 6d 2c 20 66 | 69 6c 6c 20 69 6e 20 74 |oblem, f|ill in t|
|00001920| 68 65 20 65 6e 74 72 79 | 20 69 6e 20 74 68 65 20 |he entry| in the |
|00001930| 61 64 64 72 65 73 73 20 | 74 61 62 6c 65 0d 09 2f |address |table../|
|00001940| 2f 20 61 6e 64 20 73 61 | 76 65 20 74 68 65 20 61 |/ and sa|ve the a|
|00001950| 64 64 72 65 73 73 20 6f | 66 20 74 68 65 20 6e 65 |ddress o|f the ne|
|00001960| 77 20 63 6f 64 65 2e 0d | 09 69 66 20 28 74 68 65 |w code..|.if (the|
|00001970| 45 72 72 20 3d 3d 20 6e | 6f 45 72 72 29 0d 09 09 |Err == n|oErr)...|
|00001980| 7b 0d 09 09 67 54 68 65 | 41 64 64 72 65 73 73 54 |{...gThe|AddressT|
|00001990| 61 62 6c 65 2d 3e 74 68 | 65 54 61 62 6c 65 5b 69 |able->th|eTable[i|
|000019a0| 5d 09 09 09 09 09 3d 20 | 6f 6c 64 43 6f 64 65 41 |].....= |oldCodeA|
|000019b0| 64 64 72 65 73 73 3b 0d | 09 09 67 54 68 65 50 61 |ddress;.|..gThePa|
|000019c0| 72 61 6d 42 6c 6f 63 6b | 2e 74 68 65 43 6f 64 65 |ramBlock|.theCode|
|000019d0| 52 65 73 6f 75 72 63 65 | 73 5b 69 5d 2e 74 68 65 |Resource|s[i].the|
|000019e0| 41 64 64 72 65 73 73 09 | 3d 20 74 68 65 43 6f 64 |Address.|= theCod|
|000019f0| 65 3b 0d 09 09 7d 0d 09 | 0d 09 0d 09 0d 09 2f 2f |e;...}..|......//|
|00001a00| 20 49 66 20 74 68 65 72 | 65 20 77 61 73 20 61 20 | If ther|e was a |
|00001a10| 70 72 6f 62 6c 65 6d 2c | 20 72 65 74 75 72 6e 20 |problem,| return |
|00001a20| 69 74 0d 09 72 65 74 75 | 72 6e 28 74 68 65 45 72 |it..retu|rn(theEr|
|00001a30| 72 29 3b 09 0d 7d 0d 0d | 0d 0d 0d 0d 0d 0d 0d 0d |r);..}..|........|
|00001a40| 0d 2f 2f 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.//=====|========|
|00001a50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a90| 0d 2f 2f 09 09 49 6e 73 | 74 61 6c 6c 47 65 73 74 |.//..Ins|tallGest|
|00001aa0| 61 6c 74 53 65 6c 65 63 | 74 6f 72 20 3a 20 49 6e |altSelec|tor : In|
|00001ab0| 73 74 61 6c 6c 20 61 20 | 47 65 73 74 61 6c 74 20 |stall a |Gestalt |
|00001ac0| 53 65 6c 65 63 74 6f 72 | 2e 09 09 09 09 09 09 09 |Selector|........|
|00001ad0| 09 09 09 09 09 09 09 20 | 0d 2f 2f 2d 2d 2d 2d 2d |....... |.//-----|
|00001ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b20| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 4f 53 45 72 72 20 49 |--------|.OSErr I|
|00001b30| 6e 73 74 61 6c 6c 47 65 | 73 74 61 6c 74 53 65 6c |nstallGe|staltSel|
|00001b40| 65 63 74 6f 72 28 73 68 | 6f 72 74 20 69 2c 20 50 |ector(sh|ort i, P|
|00001b50| 74 72 20 74 68 65 43 6f | 64 65 29 0d 7b 09 4f 53 |tr theCo|de).{.OS|
|00001b60| 45 72 72 09 09 09 09 74 | 68 65 45 72 72 3b 0d 09 |Err....t|heErr;..|
|00001b70| 41 47 65 73 74 61 6c 74 | 53 65 6c 65 63 74 6f 72 |AGestalt|Selector|
|00001b80| 09 2a 74 68 65 47 65 73 | 74 61 6c 74 49 6e 66 6f |.*theGes|taltInfo|
|00001b90| 3b 0d 0d 0d 0d 0d 09 2f | 2f 20 47 65 74 20 61 20 |;....../|/ Get a |
|00001ba0| 70 6f 69 6e 74 65 72 20 | 74 6f 20 74 68 65 20 69 |pointer |to the i|
|00001bb0| 6e 66 6f 72 6d 61 74 69 | 6f 6e 20 74 6f 20 73 61 |nformati|on to sa|
|00001bc0| 76 65 20 6f 6e 20 64 65 | 72 65 66 65 72 65 6e 63 |ve on de|referenc|
|00001bd0| 65 73 0d 09 74 68 65 47 | 65 73 74 61 6c 74 49 6e |es..theG|estaltIn|
|00001be0| 66 6f 20 3d 20 26 67 54 | 68 65 50 61 72 61 6d 42 |fo = &gT|heParamB|
|00001bf0| 6c 6f 63 6b 2e 74 68 65 | 43 6f 64 65 52 65 73 6f |lock.the|CodeReso|
|00001c00| 75 72 63 65 73 5b 69 5d | 2e 74 68 65 43 6f 64 65 |urces[i]|.theCode|
|00001c10| 54 68 69 6e 67 2e 74 68 | 65 47 65 73 74 61 6c 74 |Thing.th|eGestalt|
|00001c20| 53 65 6c 65 63 74 6f 72 | 3b 0d 09 0d 09 0d 09 0d |Selector|;.......|
|00001c30| 09 2f 2f 20 54 72 79 20 | 61 6e 64 20 69 6e 73 74 |.// Try |and inst|
|00001c40| 61 6c 6c 20 74 68 65 20 | 72 6f 75 74 69 6e 65 0d |all the |routine.|
|00001c50| 09 74 68 65 45 72 72 20 | 3d 20 4e 65 77 47 65 73 |.theErr |= NewGes|
|00001c60| 74 61 6c 74 28 74 68 65 | 47 65 73 74 61 6c 74 49 |talt(the|GestaltI|
|00001c70| 6e 66 6f 2d 3e 74 68 65 | 53 65 6c 65 63 74 6f 72 |nfo->the|Selector|
|00001c80| 2c 20 28 50 72 6f 63 50 | 74 72 29 20 74 68 65 43 |, (ProcP|tr) theC|
|00001c90| 6f 64 65 29 3b 0d 09 0d | 09 0d 09 0d 09 2f 2f 20 |ode);...|.....// |
|00001ca0| 49 66 20 74 68 65 20 73 | 65 6c 65 63 74 6f 72 20 |If the s|elector |
|00001cb0| 65 78 69 73 74 73 2c 20 | 72 65 70 6c 61 63 65 20 |exists, |replace |
|00001cc0| 69 74 20 69 66 20 77 65 | 27 72 65 20 61 6c 6c 6f |it if we|'re allo|
|00001cd0| 77 65 64 20 74 6f 2c 20 | 61 6e 64 20 73 61 76 65 |wed to, |and save|
|00001ce0| 0d 09 2f 2f 20 74 68 65 | 20 61 64 64 72 65 73 73 |..// the| address|
|00001cf0| 20 6f 66 20 74 68 65 20 | 6f 6c 64 20 72 6f 75 74 | of the |old rout|
|00001d00| 69 6e 65 20 69 6e 20 74 | 68 65 20 61 64 64 72 65 |ine in t|he addre|
|00001d10| 73 73 20 74 61 62 6c 65 | 0d 09 69 66 20 28 74 68 |ss table|..if (th|
|00001d20| 65 45 72 72 20 3d 3d 20 | 67 65 73 74 61 6c 74 44 |eErr == |gestaltD|
|00001d30| 75 70 53 65 6c 65 63 74 | 6f 72 45 72 72 20 26 26 |upSelect|orErr &&|
|00001d40| 20 74 68 65 47 65 73 74 | 61 6c 74 49 6e 66 6f 2d | theGest|altInfo-|
|00001d50| 3e 6f 76 65 72 77 72 69 | 74 65 45 78 69 73 74 69 |>overwri|teExisti|
|00001d60| 6e 67 53 65 6c 65 63 74 | 6f 72 29 0d 09 09 74 68 |ngSelect|or)...th|
|00001d70| 65 45 72 72 20 3d 20 52 | 65 70 6c 61 63 65 47 65 |eErr = R|eplaceGe|
|00001d80| 73 74 61 6c 74 28 74 68 | 65 47 65 73 74 61 6c 74 |stalt(th|eGestalt|
|00001d90| 49 6e 66 6f 2d 3e 74 68 | 65 53 65 6c 65 63 74 6f |Info->th|eSelecto|
|00001da0| 72 2c 0d 09 09 09 09 09 | 09 09 09 74 68 65 43 6f |r,......|...theCo|
|00001db0| 64 65 2c 0d 09 09 09 09 | 09 09 09 09 26 67 54 68 |de,.....|....&gTh|
|00001dc0| 65 41 64 64 72 65 73 73 | 54 61 62 6c 65 2d 3e 74 |eAddress|Table->t|
|00001dd0| 68 65 54 61 62 6c 65 5b | 69 5d 29 3b 0d 09 0d 09 |heTable[|i]);....|
|00001de0| 0d 09 0d 09 2f 2f 20 49 | 66 20 74 68 65 72 65 20 |....// I|f there |
|00001df0| 77 61 73 6e 27 74 20 61 | 20 70 72 6f 62 6c 65 6d |wasn't a| problem|
|00001e00| 2c 20 73 61 76 65 20 74 | 68 65 20 61 64 64 72 65 |, save t|he addre|
|00001e10| 73 73 20 6f 66 20 74 68 | 65 20 6e 65 77 20 63 6f |ss of th|e new co|
|00001e20| 64 65 2e 20 54 68 65 20 | 61 64 64 72 65 73 73 0d |de. The |address.|
|00001e30| 09 2f 2f 20 74 61 62 6c | 65 20 69 73 20 6f 6e 6c |.// tabl|e is onl|
|00001e40| 79 20 75 73 65 64 20 69 | 66 20 77 65 20 6e 65 65 |y used i|f we nee|
|00001e50| 64 20 74 6f 20 67 65 74 | 20 61 63 63 65 73 73 20 |d to get| access |
|00001e60| 74 6f 20 74 68 65 20 6f | 6c 64 20 47 65 73 74 61 |to the o|ld Gesta|
|00001e70| 6c 74 20 72 6f 75 74 69 | 6e 65 2e 0d 09 69 66 20 |lt routi|ne...if |
|00001e80| 28 74 68 65 45 72 72 20 | 3d 3d 20 6e 6f 45 72 72 |(theErr |== noErr|
|00001e90| 29 0d 09 09 67 54 68 65 | 50 61 72 61 6d 42 6c 6f |)...gThe|ParamBlo|
|00001ea0| 63 6b 2e 74 68 65 43 6f | 64 65 52 65 73 6f 75 72 |ck.theCo|deResour|
|00001eb0| 63 65 73 5b 69 5d 2e 74 | 68 65 41 64 64 72 65 73 |ces[i].t|heAddres|
|00001ec0| 73 20 3d 20 74 68 65 43 | 6f 64 65 3b 0d 09 09 0d |s = theC|ode;....|
|00001ed0| 09 09 0d 09 0d 09 2f 2f | 20 49 66 20 74 68 65 72 |......//| If ther|
|00001ee0| 65 20 77 61 73 20 61 20 | 70 72 6f 62 6c 65 6d 2c |e was a |problem,|
|00001ef0| 20 72 65 74 75 72 6e 20 | 69 74 0d 09 72 65 74 75 | return |it..retu|
|00001f00| 72 6e 28 74 68 65 45 72 | 72 29 3b 0d 7d 0d 0d 0d |rn(theEr|r);.}...|
|00001f10| 0d 0d 0d 0d 0d 0d 0d 0d | 2f 2f 3d 3d 3d 3d 3d 3d |........|//======|
|00001f20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f60| 3d 3d 3d 3d 3d 3d 3d 0d | 2f 2f 09 09 49 6e 73 74 |=======.|//..Inst|
|00001f70| 61 6c 6c 53 68 75 74 64 | 6f 77 6e 54 61 73 6b 20 |allShutd|ownTask |
|00001f80| 3a 20 49 6e 73 74 61 6c | 6c 20 61 20 53 68 75 74 |: Instal|l a Shut|
|00001f90| 64 6f 77 6e 20 54 61 73 | 6b 2e 09 09 09 09 09 09 |down Tas|k.......|
|00001fa0| 09 09 09 09 09 09 09 09 | 20 0d 2f 2f 2d 2d 2d 2d |........| .//----|
|00001fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 4f 53 45 72 72 20 |--------|-.OSErr |
|00002000| 49 6e 73 74 61 6c 6c 53 | 68 75 74 64 6f 77 6e 54 |InstallS|hutdownT|
|00002010| 61 73 6b 28 73 68 6f 72 | 74 20 69 2c 20 50 74 72 |ask(shor|t i, Ptr|
|00002020| 20 74 68 65 43 6f 64 65 | 29 0d 7b 09 4f 53 45 72 | theCode|).{.OSEr|
|00002030| 72 09 74 68 65 45 72 72 | 3b 0d 0d 0d 0d 0d 09 2f |r.theErr|;....../|
|00002040| 2f 20 49 6e 73 74 61 6c | 6c 20 74 68 65 20 74 61 |/ Instal|l the ta|
|00002050| 73 6b 20 77 69 74 68 20 | 69 74 73 20 66 6c 61 67 |sk with |its flag|
|00002060| 73 2e 20 57 65 20 61 73 | 73 75 6d 65 20 6e 6f 20 |s. We as|sume no |
|00002070| 65 72 72 6f 72 73 20 63 | 61 6e 20 6f 63 63 75 72 |errors c|an occur|
|00002080| 2e 0d 09 53 68 75 74 44 | 77 6e 49 6e 73 74 61 6c |...ShutD|wnInstal|
|00002090| 6c 28 28 53 68 75 74 44 | 77 6e 50 72 6f 63 50 74 |l((ShutD|wnProcPt|
|000020a0| 72 29 20 74 68 65 43 6f | 64 65 2c 0d 09 09 09 09 |r) theCo|de,.....|
|000020b0| 20 20 20 67 54 68 65 50 | 61 72 61 6d 42 6c 6f 63 | gTheP|aramBloc|
|000020c0| 6b 2e 74 68 65 43 6f 64 | 65 52 65 73 6f 75 72 63 |k.theCod|eResourc|
|000020d0| 65 73 5b 69 5d 2e 74 68 | 65 43 6f 64 65 54 68 69 |es[i].th|eCodeThi|
|000020e0| 6e 67 2e 74 68 65 53 68 | 75 74 64 6f 77 6e 54 61 |ng.theSh|utdownTa|
|000020f0| 73 6b 2e 74 68 65 46 6c | 61 67 73 29 3b 0d 09 74 |sk.theFl|ags);..t|
|00002100| 68 65 45 72 72 20 3d 20 | 6e 6f 45 72 72 3b 09 0d |heErr = |noErr;..|
|00002110| 09 0d 09 0d 09 0d 09 2f | 2f 20 53 61 76 65 20 74 |......./|/ Save t|
|00002120| 68 65 20 61 64 64 72 65 | 73 73 20 69 6e 20 67 54 |he addre|ss in gT|
|00002130| 68 65 50 61 72 61 6d 42 | 6c 6f 63 6b 2e 20 57 65 |heParamB|lock. We|
|00002140| 20 64 6f 6e 27 74 20 75 | 73 65 20 74 68 65 20 61 | don't u|se the a|
|00002150| 64 64 72 65 73 73 20 74 | 61 62 6c 65 20 61 74 20 |ddress t|able at |
|00002160| 61 6c 6c 2e 0d 09 69 66 | 20 28 74 68 65 45 72 72 |all...if| (theErr|
|00002170| 20 3d 3d 20 6e 6f 45 72 | 72 29 0d 09 09 67 54 68 | == noEr|r)...gTh|
|00002180| 65 50 61 72 61 6d 42 6c | 6f 63 6b 2e 74 68 65 43 |eParamBl|ock.theC|
|00002190| 6f 64 65 52 65 73 6f 75 | 72 63 65 73 5b 69 5d 2e |odeResou|rces[i].|
|000021a0| 74 68 65 41 64 64 72 65 | 73 73 20 3d 20 74 68 65 |theAddre|ss = the|
|000021b0| 43 6f 64 65 3b 0d 0d 0d | 0d 09 2f 2f 20 49 66 20 |Code;...|..// If |
|000021c0| 74 68 65 72 65 20 77 61 | 73 20 61 20 70 72 6f 62 |there wa|s a prob|
|000021d0| 6c 65 6d 2c 20 72 65 74 | 75 72 6e 20 69 74 0d 09 |lem, ret|urn it..|
|000021e0| 72 65 74 75 72 6e 28 74 | 68 65 45 72 72 29 3b 0d |return(t|heErr);.|
|000021f0| 7d 0d 0d 0d 0d 0d 0d 0d | 0d 0d 0d 0d 2f 2f 3d 3d |}.......|....//==|
|00002200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002210| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002220| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002230| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002240| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 2f 2f 09 09 |========|===.//..|
|00002250| 49 6e 73 74 61 6c 6c 56 | 42 4c 54 61 73 6b 20 3a |InstallV|BLTask :|
|00002260| 20 49 6e 73 74 61 6c 6c | 20 61 20 56 42 4c 20 74 | Install| a VBL t|
|00002270| 61 73 6b 2e 09 09 09 09 | 09 09 09 09 09 09 09 09 |ask.....|........|
|00002280| 09 09 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.. .//--|--------|
|00002290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022d0| 2d 2d 2d 0d 4f 53 45 72 | 72 20 49 6e 73 74 61 6c |---.OSEr|r Instal|
|000022e0| 6c 56 42 4c 54 61 73 6b | 28 73 68 6f 72 74 20 69 |lVBLTask|(short i|
|000022f0| 2c 20 50 74 72 20 74 68 | 65 43 6f 64 65 29 0d 7b |, Ptr th|eCode).{|
|00002300| 09 56 42 4c 54 61 73 6b | 20 09 09 2a 74 68 65 56 |.VBLTask| ..*theV|
|00002310| 62 6c 50 74 72 3b 0d 09 | 4f 53 45 72 72 09 09 09 |blPtr;..|OSErr...|
|00002320| 74 68 65 45 72 72 3b 0d | 09 0d 09 0d 09 0d 09 0d |theErr;.|........|
|00002330| 09 2f 2f 20 41 6c 6c 6f | 63 61 74 65 20 61 20 6c |.// Allo|cate a l|
|00002340| 69 74 74 6c 65 20 62 6c | 6f 63 6b 20 6f 66 20 6d |ittle bl|ock of m|
|00002350| 65 6d 6f 72 79 20 69 6e | 20 74 68 65 20 53 79 73 |emory in| the Sys|
|00002360| 74 65 6d 20 48 65 61 70 | 20 66 6f 72 20 74 68 65 |tem Heap| for the|
|00002370| 20 74 61 73 6b 20 69 6e | 66 6f 72 6d 61 74 69 6f | task in|formatio|
|00002380| 6e 0d 09 74 68 65 56 62 | 6c 50 74 72 20 3d 20 28 |n..theVb|lPtr = (|
|00002390| 56 42 4c 54 61 73 6b 2a | 29 20 4e 65 77 50 74 72 |VBLTask*|) NewPtr|
|000023a0| 53 79 73 28 73 69 7a 65 | 6f 66 28 56 42 4c 54 61 |Sys(size|of(VBLTa|
|000023b0| 73 6b 29 29 3b 0d 09 0d | 09 0d 09 0d 09 2f 2f 20 |sk));...|.....// |
|000023c0| 46 69 6c 6c 20 69 6e 20 | 74 68 65 20 66 69 65 6c |Fill in |the fiel|
|000023d0| 64 73 2c 20 61 6e 64 20 | 69 6e 73 74 61 6c 6c 20 |ds, and |install |
|000023e0| 69 74 20 61 73 20 61 20 | 56 42 4c 20 74 61 73 6b |it as a |VBL task|
|000023f0| 0d 09 74 68 65 56 62 6c | 50 74 72 2d 3e 71 54 79 |..theVbl|Ptr->qTy|
|00002400| 70 65 20 20 20 20 3d 20 | 76 54 79 70 65 3b 0d 09 |pe = |vType;..|
|00002410| 74 68 65 56 62 6c 50 74 | 72 2d 3e 76 62 6c 41 64 |theVblPt|r->vblAd|
|00002420| 64 72 20 20 3d 20 28 56 | 42 4c 50 72 6f 63 50 74 |dr = (V|BLProcPt|
|00002430| 72 29 20 74 68 65 43 6f | 64 65 3b 0d 09 74 68 65 |r) theCo|de;..the|
|00002440| 56 62 6c 50 74 72 2d 3e | 76 62 6c 43 6f 75 6e 74 |VblPtr->|vblCount|
|00002450| 20 3d 20 67 54 68 65 50 | 61 72 61 6d 42 6c 6f 63 | = gTheP|aramBloc|
|00002460| 6b 2e 74 68 65 43 6f 64 | 65 52 65 73 6f 75 72 63 |k.theCod|eResourc|
|00002470| 65 73 5b 69 5d 2e 74 68 | 65 43 6f 64 65 54 68 69 |es[i].th|eCodeThi|
|00002480| 6e 67 2e 74 68 65 56 42 | 4c 54 61 73 6b 2e 76 62 |ng.theVB|LTask.vb|
|00002490| 6c 43 6f 75 6e 74 3b 0d | 09 74 68 65 56 62 6c 50 |lCount;.|.theVblP|
|000024a0| 74 72 2d 3e 76 62 6c 50 | 68 61 73 65 20 3d 20 67 |tr->vblP|hase = g|
|000024b0| 54 68 65 50 61 72 61 6d | 42 6c 6f 63 6b 2e 74 68 |TheParam|Block.th|
|000024c0| 65 43 6f 64 65 52 65 73 | 6f 75 72 63 65 73 5b 69 |eCodeRes|ources[i|
|000024d0| 5d 2e 74 68 65 43 6f 64 | 65 54 68 69 6e 67 2e 74 |].theCod|eThing.t|
|000024e0| 68 65 56 42 4c 54 61 73 | 6b 2e 76 62 6c 50 68 61 |heVBLTas|k.vblPha|
|000024f0| 73 65 3b 0d 09 74 68 65 | 45 72 72 20 3d 20 56 49 |se;..the|Err = VI|
|00002500| 6e 73 74 61 6c 6c 28 74 | 68 65 56 62 6c 50 74 72 |nstall(t|heVblPtr|
|00002510| 29 3b 0d 09 0d 09 0d 09 | 0d 09 2f 2f 20 53 61 76 |);......|..// Sav|
|00002520| 65 20 74 68 65 20 61 64 | 64 72 65 73 73 20 6f 66 |e the ad|dress of|
|00002530| 20 74 68 65 20 56 42 4c | 54 61 73 6b 20 73 74 72 | the VBL|Task str|
|00002540| 75 63 74 75 72 65 20 69 | 6e 20 74 68 65 20 61 64 |ucture i|n the ad|
|00002550| 64 72 65 73 73 20 74 61 | 62 6c 65 20 61 6e 64 20 |dress ta|ble and |
|00002560| 74 68 65 20 70 61 72 61 | 6d 20 62 6c 6f 63 6b 0d |the para|m block.|
|00002570| 09 69 66 20 28 74 68 65 | 45 72 72 20 3d 3d 20 6e |.if (the|Err == n|
|00002580| 6f 45 72 72 29 0d 09 09 | 7b 0d 09 09 67 54 68 65 |oErr)...|{...gThe|
|00002590| 41 64 64 72 65 73 73 54 | 61 62 6c 65 2d 3e 74 68 |AddressT|able->th|
|000025a0| 65 54 61 62 6c 65 5b 69 | 5d 09 09 09 09 09 3d 20 |eTable[i|].....= |
|000025b0| 28 50 72 6f 63 50 74 72 | 29 20 74 68 65 56 62 6c |(ProcPtr|) theVbl|
|000025c0| 50 74 72 3b 0d 09 09 67 | 54 68 65 50 61 72 61 6d |Ptr;...g|TheParam|
|000025d0| 42 6c 6f 63 6b 2e 74 68 | 65 43 6f 64 65 52 65 73 |Block.th|eCodeRes|
|000025e0| 6f 75 72 63 65 73 5b 69 | 5d 2e 74 68 65 41 64 64 |ources[i|].theAdd|
|000025f0| 72 65 73 73 09 3d 20 28 | 50 74 72 29 20 74 68 65 |ress.= (|Ptr) the|
|00002600| 56 62 6c 50 74 72 3b 0d | 09 09 7d 0d 09 0d 09 0d |VblPtr;.|..}.....|
|00002610| 09 2f 2f 20 49 66 20 74 | 68 65 72 65 20 77 61 73 |.// If t|here was|
|00002620| 20 61 20 70 72 6f 62 6c | 65 6d 2c 20 72 65 74 75 | a probl|em, retu|
|00002630| 72 6e 20 69 74 0d 09 72 | 65 74 75 72 6e 28 74 68 |rn it..r|eturn(th|
|00002640| 65 45 72 72 29 3b 0d 7d | 0d 0d 0d 0d 0d 0d 0d 0d |eErr);.}|........|
|00002650| 0d 0d 0d 2f 2f 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |...//===|========|
|00002660| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002670| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002680| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002690| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000026a0| 3d 3d 0d 2f 2f 09 09 49 | 6e 73 74 61 6c 6c 4c 6f |==.//..I|nstallLo|
|000026b0| 77 4d 65 6d 46 69 6c 74 | 65 72 20 3a 20 49 6e 73 |wMemFilt|er : Ins|
|000026c0| 74 61 6c 6c 20 61 20 6c | 6f 77 2d 6d 65 6d 6f 72 |tall a l|ow-memor|
|000026d0| 79 20 66 69 6c 74 65 72 | 2e 09 09 09 09 09 09 09 |y filter|........|
|000026e0| 09 09 09 09 09 09 09 20 | 0d 2f 2f 2d 2d 2d 2d 2d |....... |.//-----|
|000026f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002730| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 4f 53 45 72 72 20 49 |--------|.OSErr I|
|00002740| 6e 73 74 61 6c 6c 4c 6f | 77 4d 65 6d 46 69 6c 74 |nstallLo|wMemFilt|
|00002750| 65 72 28 73 68 6f 72 74 | 20 69 2c 20 50 74 72 20 |er(short| i, Ptr |
|00002760| 74 68 65 43 6f 64 65 29 | 0d 7b 09 50 72 6f 63 50 |theCode)|.{.ProcP|
|00002770| 74 72 09 09 74 68 65 45 | 6e 74 72 79 50 6f 69 6e |tr..theE|ntryPoin|
|00002780| 74 3b 0d 09 0d 0d 0d 09 | 0d 09 2f 2f 20 47 65 74 |t;......|..// Get|
|00002790| 20 74 68 65 20 61 64 64 | 72 65 73 73 20 6f 66 20 | the add|ress of |
|000027a0| 74 68 65 20 66 69 6c 74 | 65 72 20 63 68 61 69 6e |the filt|er chain|
|000027b0| 2e 0d 09 74 68 65 45 6e | 74 72 79 50 6f 69 6e 74 |...theEn|tryPoint|
|000027c0| 20 3d 20 28 50 72 6f 63 | 50 74 72 29 20 67 54 68 | = (Proc|Ptr) gTh|
|000027d0| 65 50 61 72 61 6d 42 6c | 6f 63 6b 2e 74 68 65 43 |eParamBl|ock.theC|
|000027e0| 6f 64 65 52 65 73 6f 75 | 72 63 65 73 5b 69 5d 2e |odeResou|rces[i].|
|000027f0| 74 68 65 43 6f 64 65 54 | 68 69 6e 67 2e 74 68 65 |theCodeT|hing.the|
|00002800| 4c 6f 77 4d 65 6d 46 69 | 6c 74 65 72 2e 74 68 65 |LowMemFi|lter.the|
|00002810| 45 6e 74 72 79 50 6f 69 | 6e 74 3b 0d 09 0d 09 0d |EntryPoi|nt;.....|
|00002820| 09 0d 09 2f 2f 20 53 61 | 76 65 20 74 68 65 20 61 |...// Sa|ve the a|
|00002830| 64 64 72 65 73 73 20 63 | 75 72 72 65 6e 74 6c 79 |ddress c|urrently|
|00002840| 20 61 74 20 74 68 65 20 | 66 72 6f 6e 74 20 6f 66 | at the |front of|
|00002850| 20 74 68 65 20 63 68 61 | 69 6e 20 69 6e 20 74 68 | the cha|in in th|
|00002860| 65 20 61 64 64 72 65 73 | 73 20 74 61 62 6c 65 0d |e addres|s table.|
|00002870| 09 2f 2f 20 61 6e 64 20 | 73 61 76 65 20 6f 75 72 |.// and |save our|
|00002880| 73 65 6c 76 65 73 20 69 | 6e 20 74 68 65 20 70 61 |selves i|n the pa|
|00002890| 72 61 6d 20 62 6c 6f 63 | 6b 2e 0d 09 67 54 68 65 |ram bloc|k...gThe|
|000028a0| 41 64 64 72 65 73 73 54 | 61 62 6c 65 2d 3e 74 68 |AddressT|able->th|
|000028b0| 65 54 61 62 6c 65 5b 69 | 5d 09 09 09 09 09 3d 20 |eTable[i|].....= |
|000028c0| 28 50 72 6f 63 50 74 72 | 29 20 2a 28 28 76 6f 69 |(ProcPtr|) *((voi|
|000028d0| 64 20 2a 2a 29 20 74 68 | 65 45 6e 74 72 79 50 6f |d **) th|eEntryPo|
|000028e0| 69 6e 74 29 3b 0d 09 67 | 54 68 65 50 61 72 61 6d |int);..g|TheParam|
|000028f0| 42 6c 6f 63 6b 2e 74 68 | 65 43 6f 64 65 52 65 73 |Block.th|eCodeRes|
|00002900| 6f 75 72 63 65 73 5b 69 | 5d 2e 74 68 65 41 64 64 |ources[i|].theAdd|
|00002910| 72 65 73 73 09 3d 20 74 | 68 65 43 6f 64 65 3b 0d |ress.= t|heCode;.|
|00002920| 09 0d 09 0d 09 0d 09 2f | 2f 20 49 6e 73 65 72 74 |......./|/ Insert|
|00002930| 20 6f 75 72 73 65 6c 76 | 65 73 20 69 6e 74 6f 20 | ourselv|es into |
|00002940| 74 68 65 20 66 72 6f 6e | 74 20 6f 66 20 74 68 65 |the fron|t of the|
|00002950| 20 63 68 61 69 6e 0d 09 | 2a 28 28 6c 6f 6e 67 20 | chain..|*((long |
|00002960| 2a 29 20 74 68 65 45 6e | 74 72 79 50 6f 69 6e 74 |*) theEn|tryPoint|
|00002970| 29 20 3d 20 28 6c 6f 6e | 67 29 20 74 68 65 43 6f |) = (lon|g) theCo|
|00002980| 64 65 3b 0d 0d 0d 0d 09 | 2f 2f 20 49 66 20 74 68 |de;.....|// If th|
|00002990| 65 72 65 20 77 61 73 20 | 61 20 70 72 6f 62 6c 65 |ere was |a proble|
|000029a0| 6d 2c 20 72 65 74 75 72 | 6e 20 69 74 0d 09 72 65 |m, retur|n it..re|
|000029b0| 74 75 72 6e 28 6e 6f 45 | 72 72 29 3b 0d 7d 0d 0d |turn(noE|rr);.}..|
|000029c0| 0d 0d 0d 0d 0d 0d 0d 0d | 0d 2f 2f 3d 3d 3d 3d 3d |........|.//=====|
|000029d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000029e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000029f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002a00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002a10| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 2f 2f 09 09 49 6e 73 |========|.//..Ins|
|00002a20| 74 61 6c 6c 43 6f 64 65 | 42 6c 6f 63 6b 20 3a 20 |tallCode|Block : |
|00002a30| 49 6e 73 74 61 6c 6c 20 | 61 20 62 6c 6f 63 6b 20 |Install |a block |
|00002a40| 6f 66 20 63 6f 64 65 2e | 09 09 09 09 09 09 09 09 |of code.|........|
|00002a50| 09 09 09 09 09 09 20 0d | 2f 2f 2d 2d 2d 2d 2d 2d |...... .|//------|
|00002a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002aa0| 2d 2d 2d 2d 2d 2d 2d 0d | 4f 53 45 72 72 20 49 6e |-------.|OSErr In|
|00002ab0| 73 74 61 6c 6c 43 6f 64 | 65 42 6c 6f 63 6b 28 73 |stallCod|eBlock(s|
|00002ac0| 68 6f 72 74 20 69 2c 20 | 50 74 72 20 74 68 65 43 |hort i, |Ptr theC|
|00002ad0| 6f 64 65 29 0d 7b 09 50 | 72 6f 63 50 74 72 09 09 |ode).{.P|rocPtr..|
|00002ae0| 74 68 65 45 6e 74 72 79 | 50 6f 69 6e 74 3b 0d 09 |theEntry|Point;..|
|00002af0| 0d 09 0d 0d 09 0d 09 2f | 2f 20 53 65 74 20 74 68 |......./|/ Set th|
|00002b00| 65 20 72 65 73 65 72 76 | 65 64 20 66 69 65 6c 64 |e reserv|ed field|
|00002b10| 20 74 6f 20 73 6f 6d 65 | 20 76 61 6c 75 65 0d 09 | to some| value..|
|00002b20| 67 54 68 65 50 61 72 61 | 6d 42 6c 6f 63 6b 2e 74 |gThePara|mBlock.t|
|00002b30| 68 65 43 6f 64 65 52 65 | 73 6f 75 72 63 65 73 5b |heCodeRe|sources[|
|00002b40| 69 5d 2e 74 68 65 43 6f | 64 65 54 68 69 6e 67 2e |i].theCo|deThing.|
|00002b50| 74 68 65 43 6f 64 65 42 | 6c 6f 63 6b 2e 72 65 73 |theCodeB|lock.res|
|00002b60| 65 72 76 65 64 20 3d 20 | 30 78 30 30 30 30 3b 0d |erved = |0x0000;.|
|00002b70| 09 0d 09 0d 09 0d 09 2f | 2f 20 53 61 76 65 20 74 |......./|/ Save t|
|00002b80| 68 65 20 61 64 64 72 65 | 73 73 20 6f 66 20 74 68 |he addre|ss of th|
|00002b90| 65 20 63 6f 64 65 20 62 | 6c 6f 63 6b 20 69 6e 20 |e code b|lock in |
|00002ba0| 74 68 65 20 61 64 64 72 | 65 73 73 20 74 61 62 6c |the addr|ess tabl|
|00002bb0| 65 20 61 6e 64 20 74 68 | 65 20 70 61 72 61 6d 20 |e and th|e param |
|00002bc0| 62 6c 6f 63 6b 0d 09 67 | 54 68 65 41 64 64 72 65 |block..g|TheAddre|
|00002bd0| 73 73 54 61 62 6c 65 2d | 3e 74 68 65 54 61 62 6c |ssTable-|>theTabl|
|00002be0| 65 5b 69 5d 09 09 09 09 | 09 3d 20 28 50 72 6f 63 |e[i]....|.= (Proc|
|00002bf0| 50 74 72 29 20 74 68 65 | 43 6f 64 65 3b 0d 09 67 |Ptr) the|Code;..g|
|00002c00| 54 68 65 50 61 72 61 6d | 42 6c 6f 63 6b 2e 74 68 |TheParam|Block.th|
|00002c10| 65 43 6f 64 65 52 65 73 | 6f 75 72 63 65 73 5b 69 |eCodeRes|ources[i|
|00002c20| 5d 2e 74 68 65 41 64 64 | 72 65 73 73 09 3d 20 74 |].theAdd|ress.= t|
|00002c30| 68 65 43 6f 64 65 3b 0d | 0d 0d 0d 09 2f 2f 20 49 |heCode;.|....// I|
|00002c40| 66 20 74 68 65 72 65 20 | 77 61 73 20 61 20 70 72 |f there |was a pr|
|00002c50| 6f 62 6c 65 6d 2c 20 72 | 65 74 75 72 6e 20 69 74 |oblem, r|eturn it|
|00002c60| 0d 09 72 65 74 75 72 6e | 28 6e 6f 45 72 72 29 3b |..return|(noErr);|
|00002c70| 0d 7d 0d 0d 0d 0d 0d 0d | 0d 0d 0d 0d 0d 2f 2f 3d |.}......|.....//=|
|00002c80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ca0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002cb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002cc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 2f 2f 09 |========|====.//.|
|00002cd0| 09 49 6e 73 74 61 6c 6c | 54 69 6d 65 4d 61 6e 61 |.Install|TimeMana|
|00002ce0| 67 65 72 54 61 73 6b 20 | 3a 20 49 6e 73 74 61 6c |gerTask |: Instal|
|00002cf0| 6c 20 61 20 54 69 6d 65 | 20 4d 61 6e 61 67 65 72 |l a Time| Manager|
|00002d00| 20 74 61 73 6b 2e 09 09 | 09 09 09 09 09 09 09 09 | task...|........|
|00002d10| 09 09 09 09 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |.... .//|--------|
|00002d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d60| 2d 2d 2d 2d 2d 0d 4f 53 | 45 72 72 20 49 6e 73 74 |-----.OS|Err Inst|
|00002d70| 61 6c 6c 54 69 6d 65 4d | 61 6e 61 67 65 72 54 61 |allTimeM|anagerTa|
|00002d80| 73 6b 28 73 68 6f 72 74 | 20 69 2c 20 50 74 72 20 |sk(short| i, Ptr |
|00002d90| 74 68 65 43 6f 64 65 29 | 0d 7b 09 54 4d 54 61 73 |theCode)|.{.TMTas|
|00002da0| 6b 09 20 09 09 2a 74 68 | 65 54 61 73 6b 50 74 72 |k. ..*th|eTaskPtr|
|00002db0| 3b 0d 0d 0d 0d 0d 09 2f | 2f 20 41 6c 6c 6f 63 61 |;....../|/ Alloca|
|00002dc0| 74 65 20 61 20 6c 69 74 | 74 6c 65 20 62 6c 6f 63 |te a lit|tle bloc|
|00002dd0| 6b 20 6f 66 20 6d 65 6d | 6f 72 79 20 69 6e 20 74 |k of mem|ory in t|
|00002de0| 68 65 20 53 79 73 74 65 | 6d 20 48 65 61 70 20 66 |he Syste|m Heap f|
|00002df0| 6f 72 20 74 68 65 20 74 | 61 73 6b 20 69 6e 66 6f |or the t|ask info|
|00002e00| 72 6d 61 74 69 6f 6e 0d | 09 74 68 65 54 61 73 6b |rmation.|.theTask|
|00002e10| 50 74 72 20 3d 20 28 54 | 4d 54 61 73 6b 2a 29 20 |Ptr = (T|MTask*) |
|00002e20| 4e 65 77 50 74 72 53 79 | 73 28 73 69 7a 65 6f 66 |NewPtrSy|s(sizeof|
|00002e30| 28 54 4d 54 61 73 6b 29 | 29 3b 0d 09 0d 09 0d 09 |(TMTask)|);......|
|00002e40| 0d 09 2f 2f 20 46 69 6c | 6c 20 69 6e 20 74 68 65 |..// Fil|l in the|
|00002e50| 20 66 69 65 6c 64 73 2c | 20 61 6e 64 20 69 6e 73 | fields,| and ins|
|00002e60| 74 61 6c 6c 20 69 74 20 | 61 73 20 61 6e 20 54 69 |tall it |as an Ti|
|00002e70| 6d 65 20 4d 61 6e 61 67 | 65 72 20 74 61 73 6b 2e |me Manag|er task.|
|00002e80| 20 57 65 20 64 6f 6e 27 | 74 20 69 6e 73 74 61 6c | We don'|t instal|
|00002e90| 6c 0d 09 2f 2f 20 69 74 | 20 61 73 20 77 69 74 68 |l..// it| as with|
|00002ea0| 20 49 6e 73 58 54 69 6d | 65 20 62 65 63 61 75 73 | InsXTim|e becaus|
|00002eb0| 65 20 77 65 20 70 72 6f | 62 61 62 6c 79 20 77 6f |e we pro|bably wo|
|00002ec0| 6e 27 74 20 6e 65 65 64 | 20 74 68 61 74 20 61 63 |n't need| that ac|
|00002ed0| 63 75 72 61 74 65 20 74 | 69 6d 69 6e 67 2e 0d 09 |curate t|iming...|
|00002ee0| 74 68 65 54 61 73 6b 50 | 74 72 2d 3e 74 6d 41 64 |theTaskP|tr->tmAd|
|00002ef0| 64 72 09 3d 20 28 50 72 | 6f 63 50 74 72 29 20 74 |dr.= (Pr|ocPtr) t|
|00002f00| 68 65 43 6f 64 65 3b 0d | 09 74 68 65 54 61 73 6b |heCode;.|.theTask|
|00002f10| 50 74 72 2d 3e 74 6d 43 | 6f 75 6e 74 09 3d 20 30 |Ptr->tmC|ount.= 0|
|00002f20| 3b 0d 09 49 6e 73 54 69 | 6d 65 28 74 68 65 54 61 |;..InsTi|me(theTa|
|00002f30| 73 6b 50 74 72 29 3b 0d | 09 50 72 69 6d 65 54 69 |skPtr);.|.PrimeTi|
|00002f40| 6d 65 28 74 68 65 54 61 | 73 6b 50 74 72 2c 0d 09 |me(theTa|skPtr,..|
|00002f50| 09 09 09 67 54 68 65 50 | 61 72 61 6d 42 6c 6f 63 |...gTheP|aramBloc|
|00002f60| 6b 2e 74 68 65 43 6f 64 | 65 52 65 73 6f 75 72 63 |k.theCod|eResourc|
|00002f70| 65 73 5b 69 5d 2e 74 68 | 65 43 6f 64 65 54 68 69 |es[i].th|eCodeThi|
|00002f80| 6e 67 2e 74 68 65 54 69 | 6d 65 4d 61 6e 61 67 65 |ng.theTi|meManage|
|00002f90| 72 54 61 73 6b 2e 74 68 | 65 44 65 6c 61 79 29 3b |rTask.th|eDelay);|
|00002fa0| 0d 09 0d 09 0d 09 0d 09 | 2f 2f 20 53 61 76 65 20 |........|// Save |
|00002fb0| 74 68 65 20 61 64 64 72 | 65 73 73 20 6f 66 20 74 |the addr|ess of t|
|00002fc0| 68 65 20 54 4d 54 61 73 | 6b 20 73 74 72 75 63 74 |he TMTas|k struct|
|00002fd0| 75 72 65 20 69 6e 20 74 | 68 65 20 61 64 64 72 65 |ure in t|he addre|
|00002fe0| 73 73 20 74 61 62 6c 65 | 20 61 6e 64 20 74 68 65 |ss table| and the|
|00002ff0| 20 70 61 72 61 6d 20 62 | 6c 6f 63 6b 0d 09 67 54 | param b|lock..gT|
|00003000| 68 65 41 64 64 72 65 73 | 73 54 61 62 6c 65 2d 3e |heAddres|sTable->|
|00003010| 74 68 65 54 61 62 6c 65 | 5b 69 5d 09 09 09 09 09 |theTable|[i].....|
|00003020| 3d 20 28 50 72 6f 63 50 | 74 72 29 20 74 68 65 54 |= (ProcP|tr) theT|
|00003030| 61 73 6b 50 74 72 3b 0d | 09 67 54 68 65 50 61 72 |askPtr;.|.gThePar|
|00003040| 61 6d 42 6c 6f 63 6b 2e | 74 68 65 43 6f 64 65 52 |amBlock.|theCodeR|
|00003050| 65 73 6f 75 72 63 65 73 | 5b 69 5d 2e 74 68 65 41 |esources|[i].theA|
|00003060| 64 64 72 65 73 73 09 3d | 20 28 50 74 72 29 20 74 |ddress.=| (Ptr) t|
|00003070| 68 65 54 61 73 6b 50 74 | 72 3b 0d 09 0d 09 0d 09 |heTaskPt|r;......|
|00003080| 0d 09 2f 2f 20 52 65 74 | 75 72 6e 20 6e 6f 20 65 |..// Ret|urn no e|
|00003090| 72 72 6f 72 73 0d 09 72 | 65 74 75 72 6e 28 6e 6f |rrors..r|eturn(no|
|000030a0| 45 72 72 29 3b 0d 7d 0d | 00 00 00 00 00 00 00 00 |Err);.}.|........|
|000030b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003100| 00 00 01 00 00 00 02 f6 | 00 00 01 f6 00 00 00 46 |........|.......F|
|00003110| 4b 02 ff 8e 67 1c 55 56 | 86 01 51 46 25 01 00 74 |K...g.UV|..QF%..t|
|00003120| 26 68 4f 55 7c 03 ff a4 | 4a 80 66 18 55 56 01 72 |&hOU|...|J.f.UV.r|
|00003130| 0d 49 6e 73 74 61 6c 6c | 43 6f 64 65 2e 63 02 00 |.Install|Code.c..|
|00003140| 00 00 54 45 58 54 52 2a | 63 68 01 00 00 28 00 00 |..TEXTR*|ch...(..|
|00003150| 00 00 54 45 58 54 52 2a | 63 68 01 00 00 28 00 00 |..TEXTR*|ch...(..|
|00003160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003170| 00 00 a8 2a 9a e2 00 00 | 30 28 00 00 03 3c 2d 40 |...*....|0(...<-@|
|00003180| 11 ff a0 55 7a 01 ff 8c | 52 52 51 12 20 50 22 68 |...Uz...|RRQ. P"h|
|00003190| 13 01 8c 4e 91 2d 40 01 | ff 94 76 24 02 70 05 a2 |...N.-@.|..v$.p..|
|000031a0| 60 28 50 01 01 da 76 11 | fe 70 12 42 10 48 78 01 |`(P...v.|.p.B.Hx.|
|000031b0| 2d 05 57 2d 50 01 11 22 | 76 11 fd 70 2e 12 0b ea |-.W-P.."|v..p....|
|000031c0| 48 6e 2f 14 2f 0c 20 54 | 20 50 22 68 12 00 58 4e |Hn/./. T| P"h..XN|
|000031d0| 91 57 2f 57 2d 50 01 11 | 42 76 2d c0 01 ff 82 ce |.W/W-P..|Bv-.....|
|000031e0| 01 ff 8c 68 c7 52 52 51 | 2b 2c 2a 57 24 50 01 12 |...h.RRQ|+,*W$P..|
|000031f0| 42 c5 68 4f 02 66 10 70 | 1f 56 57 2d 50 01 11 82 |B.hO.f.p|.VW-P...|
|00003200| 00 00 00 86 00 06 00 00 | 1a f4 00 00 1a f4 0b 47 |........|.......G|
|00003210| 65 74 54 72 61 70 54 79 | 70 65 00 00 1c 99 00 00 |etTrapTy|pe......|
|00003220| 1c 99 0f 49 73 54 72 61 | 70 41 76 61 69 6c 61 62 |...IsTra|pAvailab|
|00003230| 6c 65 00 00 20 64 00 00 | 20 64 11 6d 79 47 65 73 |le.. d..| d.myGes|
|00003240| 74 61 6c 74 52 6f 75 74 | 69 6e 65 00 00 00 20 64 |taltRout|ine... d|
|00003250| 00 00 20 64 0d 6d 79 47 | 65 74 52 65 73 6f 75 72 |.. d.myG|etResour|
|00003260| 63 65 00 00 18 9a 00 00 | 18 9a 09 50 61 74 63 68 |ce......|...Patch|
|00003270| 54 72 61 70 00 00 08 95 | 00 00 08 95 0d 70 61 74 |Trap....|.....pat|
|00003280| 63 68 54 68 65 54 72 61 | 70 73 00 00 01 68 52 2a |chTheTra|ps...hR*|
|00003290| 63 68 02 50 00 2e 00 06 | 02 47 01 a3 00 18 00 00 |ch.P....|.G......|
|000032a0| 00 00 00 00 00 00 00 00 | 00 00 00 04 00 09 00 00 |........|........|
|000032b0| 06 4d 6f 6e 61 63 6f 00 | 00 00 00 00 00 00 00 00 |.Monaco.|........|
|000032c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000032f0| 04 00 00 03 00 00 00 48 | 00 48 00 00 00 00 03 48 |.......H|.H.....H|
|00003300| 02 52 00 00 00 00 03 48 | 02 52 00 06 05 78 03 de |.R.....H|.R...x..|
|00003310| 00 01 00 00 00 48 00 48 | 00 00 00 00 03 48 02 52 |.....H.H|.....H.R|
|00003320| 00 01 00 00 00 64 00 00 | 00 01 00 01 01 01 00 02 |.....d..|........|
|00003330| 00 01 27 0f 00 01 00 01 | 00 00 00 00 00 00 00 00 |..'.....|........|
|00003340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003360| 00 00 00 00 00 00 00 00 | 00 00 00 04 00 09 00 00 |........|........|
|00003370| 06 4d 6f 6e 61 63 6f 08 | 00 00 00 00 00 00 00 00 |.Monaco.|........|
|00003380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033b0| 00 04 01 00 00 01 00 00 | 00 00 00 01 00 00 00 00 |........|........|
|000033c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033e0| 00 00 00 00 00 00 01 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033f0| 00 00 00 00 00 00 00 00 | 01 00 00 00 02 f6 00 00 |........|........|
|00003400| 01 f6 00 00 00 46 00 83 | b8 c0 09 30 00 00 00 1c |.....F..|...0....|
|00003410| 00 46 00 01 4d 50 53 52 | 00 00 00 12 42 42 53 52 |.F..MPSR|....BBSR|
|00003420| 00 00 00 1e 03 ef ff ff | 00 00 00 00 00 00 00 00 |........|........|
|00003430| 02 50 ff ff 00 00 00 8a | 00 83 b3 bc 00 00 00 00 |.P......|........|
|00003440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003470| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+